EN FR
EN FR


Section: New Results

Automatic Differentiation and parallel codes

Participants : Valérie Pascual, Laurent Hascoët, Hubert Alcin, Jean Utke [Argonne National Lab. (Illinois, USA)] , Uwe Naumann [RWTH Aachen University (Germany)] .

This research is an ongoing joint work between three teams working on AD. We study differentiation in reverse mode of programs that contain MPI communication calls. Instead of the commonly used approach that encapsulates the MPI calls into black-box subroutines that will be differentiated by hand, we are looking for a native differentiation of the MPI calls by the AD tool. The ultimate goal of this work is to generate the adjoint of MPI-parallel codes.

One issue is to reduce the variability of the available MPI procedures and parameters to a smaller number of elementary concepts. We then address the basic question of send s and recv s, that may be blocking or nonblocking, individual or collective, and so on. Essentially the adjoint of a send is a recv , and vice-versa, but the possibility of nonblocking isend 's and irecv 's requires more subtlety.

We continue adaptation of the tool's static analysis to programs with message-passing communication. In the framework of flow-sensitive and context-sensitive data-flow analysis, we introduce new "channel" variables and modify the general static data propagation mechanism.

Implementation in tapenade is well advanced: the main MPI procedures are now correctly understood and all data-flow analyses are adapted. In 2011, we obtained a first valid tangent differentiated code of the team's CFD code aironum . Work is continuing to obtain the adjoint.

Our team focuses on AD based on program transformation. On the other hand, we closely follow the developments of operator-overloading AD tools towards message-passing communication. This requires a more complex definition of the overloaded communication primitives [33] .